package com.zimmur.app.mocolink.dao;

import java.util.Date;
import com.zimmur.app.mocolink.domain.vo.GoodsInfo;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.zimmur.app.mocolink.domain.model.Goods;
import com.zimmur.app.mocolink.domain.model.GoodsExample;
import com.zimmur.app.mocolink.domain.param.GoodsParam;
import com.zimmur.app.mocolink.domain.param.GoodsParamForManage;
import com.zimmur.app.mocolink.domain.vo.GoodsForManageInfo;

public interface GoodsMapper {
    int countByExample(GoodsExample example);

    int deleteByExample(GoodsExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(Goods record);

    int insertSelective(Goods record);

    List<Goods> selectByExampleWithBLOBs(GoodsExample example);

    List<Goods> selectByExample(GoodsExample example);

    Goods selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") Goods record, @Param("example") GoodsExample example);

    int updateByExampleWithBLOBs(@Param("record") Goods record, @Param("example") GoodsExample example);

    int updateByExample(@Param("record") Goods record, @Param("example") GoodsExample example);

    int updateByPrimaryKeySelective(Goods record);

    int updateByPrimaryKeyWithBLOBs(Goods record);

    int updateByPrimaryKey(Goods record);
    /**
     * 查询商品详细信息
     *@Description
     *@param goodsId
     *@param userId
     *@return 
     *@author zcx
     *@Time 2017年10月16日 下午9:08:05
     */
    GoodsInfo selectGoodsInfo(@Param("goodsId")Integer goodsId,@Param("userId")Integer userId);

	/**
	* <p>Title: countByStyleGroupGoodsParam</p>
	* <p>Description: 查询商品信息总数量</p>
	* @param param
	* @return
	*/
	int countByGoodsParam(@Param("param")GoodsParamForManage param);

	/**
	* <p>Title: queryGoodsForManage</p>
	* <p>Description: 查询商品信息</p>
	* @param param
	* @return
	*/
	List<GoodsForManageInfo> queryGoodsForManage(@Param("param")GoodsParamForManage param);
	/**
	 * 条件查询商品信息
	 *@Description
	 *@param goodsParam
	 *@return 
	 *@author zcx
	 *@Time 2017年10月17日 下午1:51:47
	 */
	List<GoodsInfo> selectGoodsInfoByParam(GoodsParam goodsParam);
	/**
	 * 条件统计商品数量
	 *@Description
	 *@param param
	 *@return 
	 *@author zcx
	 *@Time 2017年10月17日 下午1:52:06
	 */
	int countGoodsInfoByParam(GoodsParam param);
	/**
	 * 更新商品收藏数和点击数
	 *@Description
	 *@param goodsId 商品ID
	 *@param brower  点击数
	 *@param collect 收藏数
	 *@return 
	 *@author zcx
	 *@Time 2017年10月18日 上午11:31:16
	 */
	int updateGoodsQuantity(@Param("goodsId")Integer goodsId,@Param("brower")Integer brower,@Param("collect")Integer collect);
	/**
	 * 根据推送ID查询
	 *@Description
	 *@param pushId
	 *@return 
	 *@author zcx
	 *@Time 2017年11月7日 下午4:44:55
	 */
	Goods selectByPushId(Integer pushId);
}